System and method for aggregating and disseminating mobile device tag data

ABSTRACT

A computer-implemented method for aggregating and disseminating tag data is provided. The method includes receiving a tag generated at a particular time from a particular mobile device. Data indicative of a particular location of the particular mobile device is received corresponding to the particular time. The tag is associated with the location indicative data of the particular mobile device. Data indicative of a location of one or more other mobile devices is received, and data indicative of the tag is transmitted to the one or more other mobile devices in response to the location indicative data of the one or more other mobile devices corresponding to the location indicative data of the particular mobile device.

CROSS REFERENCE TO RELATED APPLICATION(S)

This application claims the benefit of U.S. provisional application 61/329,509, filed Apr. 29, 2010, which is incorporated by reference as if fully set forth.

BACKGROUND

Many modern mobile devices, such as mobile smartphones, now have the ability to perform network scans to determine radio signal information, such as identifiers associated with nearby cellular base transceiver stations, WiFi™ access points and Bluetooth™ access points. Mobile devices may be further enabled to perform signal strength estimates and other signal measurements. Base transceiver stations and radio access points are primarily used for voice and data service access to the mobile device, but due to their relative permanence can be exploited for other purposes, including determining device location.

A number of approaches exist to translate signal information into location, including cell triangulation and trilateration techniques, such as Time Difference of Arrival (“TDOA”), Enhanced Observed Time Difference (“EOTD”), Advanced Forward Link Trilateration (“AFLT”) and Enhanced Cell Identification (“E-CID”). Such methods are considered terrestrial counterparts to the GPS satellite-based system which uses a form of triangulation based on satellite positioning.

In many environments it is difficult, if not impossible to directly use triangulation-type approaches against radio signals to determine a mobile device position. Particularly difficult environments typically include indoor environments, such as within office buildings or shopping malls, urban environments with high buildings, and rural environments with irregular terrain. In these environments, signal fade and signal multipath problems can make straightforward employment of signal triangulation unfeasible for determining mobile device location.

It may not be necessary for a particular location-based service application to have an exact ground truth location of a mobile device to provide specific content or services to a mobile device user. A particular location-based application may potentially function effectively given proper clues to a device's particular location even at times when a true location is not available for a particular mobile device. It would be desirable to provide a system and method by which mobile device users could receive location-based content without generating or providing an exact location with their mobile devices.

SUMMARY

The present invention provides a computer-implemented method for aggregating and disseminating tag data. The method includes receiving a tag generated at a particular time from a particular mobile device. Data indicative of a particular location of the particular mobile device is received corresponding to the particular time. The tag is associated with the location indicative data of the particular mobile device. Data indicative of a location of one or more other mobile devices is received, and data indicative of the tag is transmitted to the one or more other mobile devices in response to the location indicative data of the one or more other mobile devices corresponding to the location indicative data of the particular mobile device.

The present invention further provides another computer-implemented method for aggregating and disseminating tag data. The method includes receiving signals indicative of a location of a particular mobile device associated with a particular user. A tag is received via the particular mobile device. Signal fingerprints are generated associated with the location indicative signals. A particular signal fingerprint corresponding to a time the tag was received is associated with the tag. The associated tag and the signal fingerprints including the particular signal fingerprint are transmitted to a remote system via a network. Data indicative of a tag provided by at least one other mobile device associated with at least one other user corresponding to a current signal fingerprint of the particular mobile device is received with the particular mobile device from the remote system.

The present invention further provides non-transitory computer-readable media tangibly embodying a program of instructions executable by a processor of a particular mobile device associated with a particular user to implement a method. The method includes receiving signals indicative of a location of the particular mobile device associated with the particular user. A tag is received via the particular mobile device. Signal fingerprints are generated associated with the location indicative signals. A particular signal fingerprint corresponding to a time the tag was received is associated with the tag. The associated tag and the signal fingerprints including the particular signal fingerprint are transmitted to a remote system via a network. Data indicative of a tag provided by at least one other mobile device associated with at least one other user corresponding to a current signal fingerprint of the particular mobile device is received with the particular mobile device from the remote system. As stated herein non-transitory computer-readable media comprises all computer-readable media except for a transitory, propagating signal.

BRIEF DESCRIPTION OF THE DRAWING(S)

The foregoing Summary as well as the following detailed description will be readily understood in conjunction with the appended drawings which illustrate preferred embodiments of the invention. In the drawings:

FIG. 1 is a schematic illustration of an exemplary operating environment in which mobile device communication systems are operable according to a preferred embodiment of the invention.

FIG. 2 is a flow chart showing a computer-implemented method for aggregating and disseminating tag data according to a preferred embodiment of the invention.

FIG. 3 is a flow chart showing another computer-implemented method for aggregating and disseminating tag data according to a preferred embodiment of the invention.

FIG. 4 is an illustration showing a communication flow between entities enabled by the communication systems of FIG. 1 according to a preferred embodiment of the invention.

FIG. 5 is an illustration of a route shown traveled by a user of a mobile device enabled pursuant to a preferred embodiment of the invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT(S)

The preferred embodiments of the present invention are described below with reference to the drawing figures where like numerals represent like elements throughout.

Referring to FIG. 1, a schematic illustration is shown of an exemplary operating environment 10 in which preferred mobile device communication systems, in the form of mobile devices 12 and a coordination server 30, can be used. The mobile devices 12 and coordination server 30 each include one or more computing devices and one or more memory devices, which computing devices and memory devices can be integrally constructed or connected in any suitable manner, for example integrally or via a network. It is to be understood that a server typically comprises a computer system, as known in the art.

Each mobile device 12 provides a platform according to a preferred embodiment of the invention which enables an operating system 14 and a module of instructions 16 preferably residing in a memory of the mobile device 12. The mobile device 12, which preferably includes cellular telephone functionality, includes a transceiver 18 for communication with cellular base transceiver stations 60, 62 (“base stations”) and a user interface 20, preferably including a display and one or more audio speakers. A GPS receiver 22 is preferably provided for receiving signals from GPS satellites 70. The transceiver 18 can be further configured to communicate with other wireless stations or devices, or alternatively, the mobile device 12 can support a plurality of transceivers for communication with a plurality of wireless stations or devices.

The coordination server 30 provides a platform according to a preferred embodiment of the invention which enables an operating system 32 and memory or memories which permit operation of databases 36, 38. Preferably, mobile device signal fingerprint data is stored in a fingerprint database 36 and tag data corresponding to mobile device signal fingerprint data is stored in a tag database 38. The coordination server 30 is preferably configured to receive signal fingerprint data or other data indicative of mobile device location from the mobile devices 12 via a cellular telecommunication network 72. The signal fingerprint data or other location indicative data is preferably received by the coordination server 30 in the form of one or more short message service (“SMS”) messages received from the mobile devices 12 via a short message service center (“SMSC”) 74, which may be integrated with the telecommunication network 72. Alternatively, signal fingerprint data can be sent by the mobile devices 12, 112 using internet protocol (“TCP/IP”) and received by the coordination server 30 via an internet protocol (“IP”) gateway 76, which may be integrated with the telecommunication network 72. The coordination server 30 can alternatively query a remote position determining entity (“PDE”) 78, a Gateway Mobile Location Center (“GMLC”), or other system for disseminating signal fingerprint data of mobile devices, which PDE 78, GMLC or other system may be provided as a service by a telecommunication carrier or other party, and which systems may deliver data to the coordination server 30 via internet protocol through the IP gateway 76 or via other suitable protocol. One or more external application servers 73 execute applications which use signal fingerprint and tag data provided by the mobile devices 12 or the coordination server 30 to provide content or services to a user of a particular mobile device.

Referring to FIG. 2, a method 200 for aggregating and disseminating tag data is shown. The method 200 is described with reference to the preferred components shown in the operating environment 10 of FIG. 1, which components preferably include memory suitable for storing instructions for performance of the method 200. The method 200 may alternatively be performed via other suitable systems. The method 200 includes receiving a tag generated at a particular time from a particular mobile device 12 (step 202). The tag preferably includes a description of a product, an object, a location, a building, a point of interest, or other description associated with a physical entity at a particular location where the mobile device 12 is positioned. Further, data is received indicative of a particular location of the particular mobile device 12 corresponding to the particular time when the tag was generated (step 204), and the tag is associated with the location indicative data of the particular mobile device 12 (step 206). Data is received indicative of a location of one or more other mobile devices 12 (step 208), and data indicative of the tag is transmitted to the one or more other mobile devices 12 in response to the location indicative data of the one or more other mobile devices 12 corresponding to the location indicative data of the particular mobile device 12 (step 210). The steps of the method 200 are preferably performed by the coordination server 30 or other suitable system or systems via the network 72. Steps 202 through 206 correspond to a training process in which the coordination server 30 can build databases 36, 38 of tags paired with respective location indicative data. Steps 208 and 210 correspond to a positioning process in which the coordination server 30 matches its previously received location indicative data with current location indicative data of a mobile device 12 to provide the mobile device 12 with corresponding previously received tag data.

The data indicative of the location of the mobile device 12 preferably includes measurements of base station signal quality in the form of a signal fingerprint, which measurements are preferably performed by the mobile device 12 via the transceiver 18 during a radio signal scan. The location indicative data in the form of a signal fingerprint can further include measurements of signals from one or more other sources of any suitable protocol, such as from a local area network (“LAN”) wireless access point 64, which signals can be discovered via the radio signal scan. The signal fingerprint is not necessarily associated with an actual physical location, which may be difficult to determine in certain environments due to interference causing irregular signal paths, and which calculation may potentially place greater computational and bandwidth burdens on device and network resources. The signal fingerprint can be computed in the manner of computation of estimated location or can alternatively include a recordation of measurements typically used for computation of estimated location. Estimated current location or signal fingerprint can be computed from the base station identification (“ID”) of a base transceiver station 60 serving the mobile device 12 and location data which correlates the base station ID with a physical location. A current location or signal fingerprint of the mobile device 12 is further determinable based on measurements of signals received from one or more of the base transceiver stations 60, 62 via the transceiver 18 and location data providing the physical location of the one or more base transceiver stations 60, 62. The current location or signal fingerprint of the mobile device 12 is alternatively determinable by the mobile device 12 through a GPS fix via signals received by the GPS receiver 22 from GPS satellites 70, predetermined ephemeris and almanac data transmitted by the satellite. Determination of the actual location of the mobile device 12 is not significant in generating the signal fingerprint, and measurements of signals from a plurality of sources implementing a plurality of different protocols are preferably used in generating the signal fingerprint.

As set forth in FIG. 1, the base transceiver stations 60 represent base stations in the process of carrying a telephone call or data session between the mobile devices 12 and usable for determining a current location or generating a signal fingerprint corresponding to a current location of the mobile devices 12. The base transceiver stations 62 represent base stations not currently used in the process of carrying a telephone call or data session between the mobile devices 12, but which are within a reception or transmission range of the mobile devices 12. Base transceiver stations 60 carrying a telephone call or data session for the mobile devices 12 and base transceiver stations 62 within a reception range of the mobile devices 12 can be used for transmitting signals to or receiving signals from the mobile devices 12 for measurement in determining a current location of the first mobile device 12 or generating a signal fingerprint corresponding to a current location of the first mobile device 12.

Suitable non-limiting methods for location determination based on signal measurement include but are not limited to: Angle of Arrival (“AOA”), in which the angles of arrival of signals from two base transceiver stations of known position are determined; Time Difference of Arrival (“TDOA”) or Time of Arrival (“TOA”), in which lengths of time it takes to receive signals from three or more base stations of known position are determined; Enhanced Observed Time Difference (“EOTD”), in which lengths of time it takes to receive signals from three or more base stations of known position are determined based on timing data provided via the network; Advanced Forward Link Trilateration (“AFLT”), in which the device position is triangulated based on signal measurements from three or more base stations of known position by determining phase differences of the signals and signal strengths; and signal strength triangulation, in which the device position is triangulated based on signal strength measurements from three or more base stations of known position, wherein in some implementations of signal strength triangulation multipath fingerprinting is incorporated to characterize received signals. Timing Advance (“TA”) values provided by a base transceiver station of known position to a mobile device can also provide the basis for calculation of a current location by triangulation or other suitable method.

Signal fingerprint data is preferably determined by the mobile device 12 and transmitted from the mobile device 12 to the coordination server 30 in the form of one or more of: one or more base station IDs, one or more base station locations, angles of arrival of signals from identified base stations 60, 62, lengths of time for signals to travel between identified base stations 60, 62 and the mobile device 12, AFLT measurements corresponding to identified base stations 60, 62, signal strength measurements from identified base stations 60, 62, and TA values corresponding to identified base stations 60, 62. Signal fingerprint data can further include measurements of received signals from other sources implementing protocols including but not limited to Amplitude Modulation (“AM”), Frequency Modulation (“FM”), WiFi™, Bluetooth™, or any protocols typical of LAN wireless access points. Alternatively, a request with accompanying signal and base station ID data can be transmitted from the coordination server 30 to a position determining entity (“PDE”) 78, which PDE can provide a signal fingerprint or current location.

The coordination server 30 can alternatively receive from the mobile device 12 an identifier of the mobile device 12 without any signal fingerprint or location indicative data pertaining to the mobile device 12 or an associated base station, along with a locate request. The coordination server 30 can thereafter query a PDE 78, a Gateway Mobile Location Center (“GMLC”), or other suitable resource for a signal fingerprint or location indicative data of the mobile device 12 in response to receiving the locate request. The PDE 78 or other resource may be made available by a telecommunication carrier via the cellular telecommunication network 72 or by an outside service provider. The coordination server 30 preferably communicates with the PDE 78 or other resource via the telecommunication network 72 and/or via the IP gateway 76. Alternatively, the coordination server 30 queries a suitable telecommunication carrier network resource for location data regarding the respective mobile device 12 including but not limited to one or more of base station ID, base station location, AOA measurements, TDOA measurements, TOA measurements, EOTD measurements, AFLT measurements, signal strength measurements, and TA values, and uses such location data to determine a signal fingerprint of the respective mobile device 12.

The mobile devices 12 are preferably configured to locally compute their respective signal fingerprints if signal data from a suitable source is available to the respective mobile device 12. Generation of the signal fingerprint may alternatively be performed by a telecommunication carrier through a location resource residing on the telecommunication network 72, in which case the telecommunication carrier location resource is preferably queried by the mobile device 12 to receive data useful for computing a signal fingerprint. Alternatively, the generation of the signal fingerprint is performed via the coordination server 30 based on signal measurements received from the mobile device 12 via the telecommunication network 72 and/or other data received from a location resource of the telecommunication carrier via the telecommunication network 72.

For a plurality of mobile devices 12, a plurality of tags, and a plurality of location indicative data, the coordination server 30 stores in the signal fingerprint database 36 the data indicative of the particular location of a particular mobile device 12, preferably in the form of the signal fingerprint corresponding to the particular mobile device 12 when the tag was inputted. The coordination server 30 further stores the received tag associated with the signal fingerprint in the tag database 38. Data indicative of one or more of the plurality of tags is transmitted to the one or more others of the plurality of mobile devices 12 in response to current location indicative data received from the one or more others of the plurality of mobile devices 12 corresponding to the location indicative data of one or more of a plurality of particular mobile devices 12 associated with a tag. Alternatively, data indicative of a particular tag can be transmitted to the particular mobile device 12 from which the tag was previously received in response to current location indicative data received from the particular mobile device 12 corresponding to prior location indicative data of the particular mobile devices 12 associated with the tag. The transmitted data indicative of one or more tags can include the one or more tags as received from the particular mobile device 12, an indication of types or numbers of tags corresponding to a mobile device's current signal fingerprint, or data retrieved or generated by the coordination server 30 or other system in response to the tags received from the particular mobile device 12. The data indicative of a tag can further include statistically significant keywords, which keywords can be used to enhance an application by providing location-based contextual information, which application can be executed locally on the mobile device 12 or remotely in a client-server organized system. As such, tag data entered at a particular location via one user of a mobile device 12 can be provided in a predetermined form to another user of another mobile device 12, or the same user of the same mobile device 12 at a later time, when the same or other mobile device 12 is at or within a predetermined distance or time to the particular location.

Alternatively, the coordination server 30 can receive an authorization from a user associated with the first mobile device 12 to provide the tag, as associated with the location indicative data, to an application hosted by a particular application server 73. The coordination server 30 can thereafter transmit tag data as associated with location indicative data to the application server 73 via a network such as the Internet. The application server 73 is configured to interface with the mobile device 12 to provide suitable content or services via an application requiring the tag data for functionality. If authorized by the user of the mobile device 12, the coordination server 30 can further provide the application server 73 an identifier identifying the first mobile device 12 and a user thereof.

A remote application server 73 can further act as an intermediary between the coordination server 30 and a mobile device 12 to which tag data is ultimately transmitted. Referring to FIG. 2, in step 208 of the method 200, data received indicative of a location of a mobile device or devices 12 can be received from a remote system such as the application server 73, and step 210 can be replaced with a step in which data indicative of a tag is transmitted to the remote system, instead of to a mobile device 12 directly, in response to the received location indicative data of such mobile device or devices 12 corresponding to the location indicative data of a particular mobile device 12 from which the tag was initially received in the step 202. The remote system in the form of the application server 73 can thereafter transmit the tag indicative data to the mobile device or devices 12 or otherwise use such data in providing a service to the mobile device or devices 12. In such cases, the application server 73 preferably services a local application executed on the mobile device or devices 12, which local application preferably obtains fingerprint or other location indicative data for transmission to the application server 73, and which application server 73 transmits the location indicative data received by the mobile device 12 to the coordination server 30 in a request for the corresponding tag data. The application server 73 can receive the location indicative data from a mobile device 12 in any suitable form, in the manners described above, and even as manually user-entered location.

In one preferred embodiment of the invention, the tag is received from the particular mobile device 12 as a product identifier manually entered or machine captured via the mobile device 12. The coordination server 30 preferably associates the product identifier with a predetermined product description and transmits the predetermined product description as the data indicative of the tag. The data indicative of the tag transmitted to the one or more other mobile devices 12 preferably includes the predetermined product description. The predetermined product description can include a product specification, advertisement, promotional content, or other data obtained via the product manufacturer or distributor or other entity.

In a preferred embodiment of the invention, data indicative of predetermined ones of the plurality of inputted tags is transmitted by the coordination server 30 to a mobile device 12 in response to the current location indicative data of the mobile device 12 corresponding to the location indicative data of more than one particular mobile device 12 from which a predetermined number of tags of a particular type were received. By receiving a particular tag corresponding to particular location indicative data from a predetermined number of users prior to transmitting the data indicative of the tag to other users, a higher confidence of the particular tag can be achieved. If more than one user enters a tag at a particular location, there is a higher probability that the tag truly corresponds to a particular signal fingerprint, thereby leading to the higher confidence. An indication of a level of confidence can be transmitted along with the data indicative of the tag to a mobile device 12 so a user can gauge how potentially trustable the tag data is.

To further increase tag confidence, tags received by the coordination server 30 from mobile devices 12 are preferably weighted based on quality ratings of the respective users which provide the tags. Users can rate the quality of tag indicative data received via their mobile device 12 and the coordination server 30 can request and receive such rating. The user-provided rating is preferably used as a basis for the coordination server 30 to generate the quality rating of the user or users which provided the tag corresponding to the rated tag indicative data. The coordination server 30, upon receiving a particular tag from a particular user corresponding to a particular location, assigns a point value to the particular tag based on a quality rating of the user. When a substantially identical tag from another user corresponding to an approximately identical location is received, a point value determined based on the quality rating of the other user is added to the point value for the particular tag. The coordination server 30 preferably sends data indicative of the particular tag to other users operating respective mobile devices 12 corresponding to the particular location when the total point value corresponding to the particular tag reaches a predetermined minimum. Alternatively, transmission of tag data to the coordination server 30 can be restricted to users with established administrative or managerial roles. The administrative or managerial roles can be granted by the coordination server 30 to those with certain ownership rights in a particular geographic area. For example, the owner or operator of a department store or shopping center may want that only those with proper authorization such as employees may transmit to the coordination server 30 tags associated with product locations within the department store or shopping center. As indicated above, the location indicative data of the mobile device 12 is preferably a signal fingerprint. The coordination server 30 is configured to compare previously received signal fingerprints of one or more particular mobile devices 12 respectively associated with tags to a received current signal fingerprint of another mobile device or devices 12, or alternatively, even with the same particular mobile device 12. If the current signal fingerprint corresponds to the previously received fingerprints of the one or more particular mobile devices 12, the coordination server transmits data indicative of the tag to the other mobile device or devices 12. The previously received signal fingerprints need not be precisely equal to the current signal fingerprint to trigger transmission of the tag indicative data. Preferably, data indicative of the previously received tag is transmitted to another mobile device in response to the signal fingerprint of the other mobile device corresponding to a predetermined proximity of the location indicative data of the particular mobile device, whereby transmission of the tag is triggered by the current and prior signal fingerprints being within a predetermined degree of similarity. Alternatively, data indicative of the tag is transmitted to another mobile device in response to the signal fingerprint of the other mobile device being within a predetermined edit distance of the previously received signal fingerprint of the particular mobile device. Alternatively, the coordination server 30 defines a fingerprint space and associates the previously received signal fingerprint generated by the particular mobile device with a predetermined multidimensional neighborhood of the fingerprint space defined by data points within one or more predetermined edit distances of the signal fingerprint of the particular mobile device, and the data indicative of the tag is transmitted to another mobile device in response to the signal fingerprint of the other mobile device being within the multidimensional neighborhood of the defined fingerprint space.

The data indicative of the particular location of the particular mobile device 12 is preferably a signal fingerprint generated by the particular mobile device 12 pursuant to instructions provided by the instructions module 16. Referring to FIG. 3, a method 300 is preferably performed via a particular mobile device 12 or other suitable device in communication with the coordination server 30 or other suitable system configured to perform the method 200 of FIG. 2. The method 300 includes receiving signals indicative of a location of the particular mobile device 12 associated with a particular user (step 302). A tag is received via the particular mobile device 12 (step 304). Signal fingerprints are generated associated with the location indicative signals (step 306). The received tag is associated with a particular signal fingerprint corresponding to a time the tag was received (step 308). A radio signal scan is preferably performed to receive location indicative signals and a signal fingerprint is preferably generated at substantially the same time a tag is received. The associated tag and the signal fingerprints including the particular signal fingerprint are transmitted to a remote system, preferably the coordination server 30, via a network (step 310). The radio signal scans and signal fingerprint generations are further preferably performed at a predetermined rate or in response to a detected movement without receipt of a tag. Signal fingerprints not associated with tags are transmitted to the coordination server 30 in addition to the particular signal fingerprints associated with tags, permitting the coordination server 30 to compare the signal fingerprints with previously received signal fingerprints associated with tags. Further, the particular mobile device 12 receives from the coordination server 30 data indicative of a tag provided by one or more other mobile devices 12 associated with one or more other users corresponding to a current signal fingerprint of the particular mobile device (step 312). Alternatively, the particular mobile device 12 receives from the coordination server 30 data indicative of a tag provided previously by the particular mobile device 12 corresponding to a current signal fingerprint of the particular mobile device. Steps 302 through 308 correspond to a process through which a mobile device 12 enables a coordination server 30 to implement a training process to build databases 36, 38 of tags paired with respective signal fingerprints, and through which the mobile device 12 provides such coordination server 30 or other suitable system a current signal fingerprint of the particular mobile device to match with its existing contents of its databases 36, 38. Step 312 corresponds to a process through which a mobile device 12 can receive from the coordination server 30 previously received tag data based on a match of its current signal fingerprint with previously received signal fingerprints associated with the previously received tag data.

As indicated above, the tag can be input as a description of a product, an object, a location, a building, a point of interest, or other description associated with a physical entity at a particular location where the mobile device 12 is positioned. In a preferred embodiment, the user can manually select, type or speak a description of an attribute of the described product, object, location, or other entity. For example, within a retail shopping establishment, terms and phrases such as “men's shoes”, “toaster”, “Walmart™ electronics”, or other product or section of the retail shopping establishment can be input via an interface provided by a client application of the mobile device 12. The tag can further be inputted automatically as a sensed machine readable representation of data including a barcode, a radio frequency identification (RFID), or other suitable machine readable material attached to a corresponding product, object, location or other entity. The mobile device 12 is preferably provided with one or more sensors 15 which include one or more of a barcode reader, an RFID reader, and a camera, or alternatively, other suitable sensor for detecting machine readable representation of data. The tag transmitted to the coordination server 30 from the mobile device 12 can include a photograph of a barcode or other machine readable representation of data or a decoded recording of the machine readable representation of data. The transmitted tag can alternatively include a photograph of product packaging or other objects or structures not typically associated with machine readable data, which photograph can be decoded locally at the mobile device 12 or at the coordination server 30 via an image recognition algorithm.

SMS messages including signal fingerprints, or other location indicative data useful for determining the signal fingerprints, and associated tags are preferably sent to the coordination server 30 from a particular mobile device 12 via the SMSC 74. Current signal fingerprints or other location indicative data are preferably generated and sent at a predetermined rate to the coordination server regardless of whether a tag is entered, to permit the coordination server 30 to make the required comparison with previously received location indicative data and transmit relevant tag indicative data to the particular mobile device 12. The use of SMS messaging is preferable in that many cellular telecommunication networks do not currently support the use of a packet data connection simultaneously with a telephone call. Alternatively, the mobile devices 12 can communicate with the coordination server 30 and each other via packet-based TCP/IP networking through the IP gateway 76, via control-plane messaging on the cellular telecommunication network 72, via SS7 signaling, or via other suitable communication.

The coordination server 30 preferably also transmits the tag indicative data to the particular mobile device 12 as an SMS message via the SMSC 74. Two or more SMS messages can be sent to a mobile device if a message content exceeds the character limit of the SMS message format. The SMS message or messages from the coordination server 30 are preferably application-directed with instructions for a client application running via the operating systems 14 of the mobile devices 12. Alternatively, the coordination server 30 can communicate with the mobile devices 12 via TCP/IP through the IP gateway 76 or via other suitable communication protocol.

The mobile devices 12 are preferably configured to interpret SMS message data or other communication from the coordination server 30 via the client application to provide a display or audio output via the respective user interfaces 20. The SMS message or other communication from the coordination server 30 can further provide a link for a mobile device 12 to access corresponding data indicative of a tag on the coordinating server 30 via the IP Gateway 76 or on other remote system via a suitable protocol. In such a manner, excessive data is not required to be transmitted from the coordination server 30 to the mobile device 12.

The coordination server 30 can alternatively be omitted from the operating environment 10, and the mobile devices 12 can communicate with each other as a peer-to-peer organized system permitting exchange of signal fingerprints and tag data. In such case the method 200 can be performed by a mobile device 12, and the remote system of method 300 can comprise the mobile device 12. In such case, mobile devices 12 can communicate with each other via SMS, packet-based TCP/IP networking through the IP gateway 76, via control-plane messaging on the cellular telecommunication network 72, via SS7 signaling, or via other suitable communication.

The method 300 according to the invention is preferably implemented via a client software application on the mobile devices 12. Alternatively, a system for performing the method can be client firmware or hardware enabled. The client application exposes the user interface 20 on the respective mobile device 12 through which the mobile device user can enter a tag corresponding to a product, an object, a location, a building, a point of interest, or other description associated with a physical entity at a particular location where the mobile device 12 is positioned.

Referring to FIG. 4, an illustrative communication flow 400 according to a preferred embodiment of the invention is shown between entities enabled by the systems represented in the operating environment 10 of FIG. 1. A user 8 interfaces with a client application 120 executed by the mobile device 12, which mobile device 12 includes the transceiver 18 and the sensors 15. The client application 120 interfaces with a coordination service 130 preferably executed by the coordination server 30. Remote applications 140 are preferably executed by remote application servers 73, and local applications 122 are preferably executed by the mobile device 12, which local and remote applications 122, 140 are preferably user-selected 3^(rd) party applications.

An inputted description of a tag such as a product, an object, a location, a building, a point of interest, or other description associated with a physical entity at a particular location where the mobile device 12 is positioned is communicated to the client application (communication 402). Alternatively, a sensed tag can be communicated to the client application via sensors 15 in the form of a barcode, a radio frequency identification (RFID), or other suitable machine readable representation of data or decoded recording of the machine readable representation of data (communication 404). Measurements of signals received from one or more transmission sources determined via a radio signal scan are communicated to the client application 120 (communication 406). Current signal fingerprints are communicated to the coordination service 130 (communication 408). Tags associated with particular signal fingerprints are communicated to the coordination service 130 to build the signal fingerprint database 36 and tag database 38 of the coordination server 30 as part of a coordination service training process (communication 410). In a positioning process, data indicative of one or more previously received tags is communicated to the client application 120 from the coordination service 130 in response to a current signal fingerprint of the mobile device 12 corresponding to one or more signal fingerprints associated with tags previously received from other mobile devices, or alternatively, previously received from the mobile device 12 to which the data indicative of the tags is communicated (communication 412). It can alternatively be required that the tag indicative data be communicated to the client application 120 (communication 412) in response to a request from a local application (communication 414) or remote application (communication 416) in addition to or instead of responsive to a current signal fingerprint of the mobile device 12 corresponding to one or more signal fingerprints associated with previously received tags. In such cases, the tag indicative data can be forwarded to the local application (communication 418) or remote application (communication 420).

Referring to FIG. 5, an example route 500 is shown traveled by an example user 8 of the mobile device 12 in a process of initiating data communications corresponding to the communication flow 400. At a first location 510 along the route 500 the user 8 happens upon a product 502 at a shopping establishment such as a retail store. The product 502 includes a machine readable representation of data 504 including a barcode, a radio frequency identification (RFID), or other suitable machine readable data which is sensed by the sensor 15 of the mobile device 12 to generate a tag. Alternatively, a product category, a product type, a product brand name, or any suitable description of the product 502 can be inputted manually by the user 8 via the mobile device 12. At a second location 512 a physical landmark 506 is present for which the user 8 inputs with the mobile device 12 as the tag a corresponding description, for example, a building or structure name, type or category. At a third location 514 a section of a shopping establishment 508 is located, such as a store within a mall or a department of a department store or a department of a discount retail outlet, for which the user 8 inputs with the mobile device 12 as the tag a corresponding description, for example the name of the store or the department name as represented by the store.

The mobile device 12 preferably performs a radio signal scan via its transceiver 18 at the first, second and third locations 510, 512, 514 at substantially the same time as entering the respective tags and generates a signal fingerprint based on measured signals from the base stations 60, 62, wireless access points 64 and other available signal sources. To initiate the afore-described coordination service training process, the tags and the respective associated signal fingerprints originating at the first, second and third locations 510, 512, 514 are communicated to the coordination service 130 enabled by the coordination server 30 individually at the time of generation, or together at a later time to conserve computation and bandwidth resources. To initiate the afore-described positioning process, a current real-time signal fingerprint is communicated to the coordination service 130 at predetermined times corresponding to positions 520 along the route 500, which positions 520 do not necessarily correspond to entered tags.

The user 8 might be, for example, a retail store employee who is tasked with walking up and down the aisle of the store where products 502 are located to scan different items with a barcode scanner, camera or other suitable sensor 15 machine readable representation of data 504 on the product 502. The machine scanned data can be supplemented with manually user-inputted description if desired. Scanning a breakfast cereal box may generate a tag associated with the signal fingerprint of a breakfast aisle of a supermarket.

While the preferred embodiments of the invention have been described in detail above, the invention is not limited to the specific embodiments described above, which should be considered as merely exemplary. Further modifications and extensions of the present invention may be developed, and all such modifications are deemed to be within the scope of the present invention as defined by the appended claims. 

1. A computer-implemented method for aggregating and disseminating tag data comprising: receiving a tag generated at a particular time from a particular mobile device; receiving data indicative of a particular location of the particular mobile device corresponding to the particular time; associating the tag with the location indicative data of the particular mobile device; receiving data indicative of a location of at least one other mobile device; and transmitting data indicative of the tag to the at least one other mobile device in response to the location indicative data of the at least one other mobile device corresponding to the location indicative data of the particular mobile device.
 2. The computer-implemented method of claim 1, wherein receiving the data indicative of the location of the particular mobile device comprises receiving measurements of base station signal quality from the particular mobile device.
 3. The computer-implemented method of claim 1, wherein receiving the data indicative of the location of the particular mobile device comprises receiving measurements of a length of time for a signal to arrive to the first mobile device from at least one base station.
 4. The computer-implemented method of claim 1, wherein receiving the data indicative of the location of the particular mobile device comprises receiving Timing Advance set for the particular mobile device by a base station in communication with the particular mobile device.
 5. The computer-implemented method of claim 1, wherein receiving the data indicative of the location of the particular mobile device comprises receiving a GPS fix from the particular mobile device.
 6. The computer-implemented method of claim 1, wherein receiving the data indicative of the location of the particular mobile device comprises receiving data generated via at least one of the Global Positioning System; Assisted-GPS, Observed Time Difference, Time Of Arrival, Time Difference of Arrival; Angle of Arrival; multipath fingerprinting; Timing Advance, Enhanced Forward Link Triangulation; Time Difference of Arrival & Received Signal Strength, Time Difference of Arrival & Angle of Arrival, Assisted Forward Link Triangulation & Assisted GPS; and Enhanced Observed time Difference & Assisted GPS.
 7. The computer-implemented method of claim 1, further comprising receiving the location indicative data of the particular mobile device as a signal fingerprint generated by the particular mobile device via a radio signal scan.
 8. The computer-implemented method of claim 1, further comprising: receiving the location indicative data of the particular mobile device as a signal fingerprint generated by the particular mobile device; receiving the location indicative data of the at least one other mobile device as a signal fingerprint generated by the at least one other mobile device; comparing the signal fingerprint of the particular mobile device and the at least one other mobile device; transmitting the data indicative of the tag to the at least one other mobile device in response to the signal fingerprint of the at least one other mobile device corresponding to a predetermined proximity of the location indicative data of the particular mobile device.
 9. The computer-implemented method of claim 8, further comprising: transmitting the data indicative of the tag to the at least one other mobile device in response to the signal fingerprint of the at least one other mobile device being within a predetermined edit distance of the location indicative data of the particular mobile device.
 10. The computer-implemented method of claim 8, further comprising: defining a fingerprint space; associating the signal fingerprint generated by the particular mobile device with a neighborhood of the fingerprint space defined by data points within at least one predetermined edit distance of the signal fingerprint generated by the particular mobile device; and transmitting the data indicative of the tag to the at least one other mobile device in response to the signal fingerprint of the at least one other mobile device being within the neighborhood of the defined fingerprint space.
 11. The computer-implemented method of claim 1, further comprising receiving the tag as a user-inputted description via the particular mobile device.
 12. The computer-implemented method of claim 1, further comprising: receiving the tag as a product identifier via the particular mobile device; and associating the product identifier with a predetermined product description; wherein transmitting the tag indicative data comprises transmitting the predetermined product description.
 13. The computer-implemented method of claim 1, further comprising: receiving promotional content corresponding to a product identifier; receiving the tag as the product identifier via the particular mobile device; and associating the product identifier with the promotional content; wherein transmitting the tag indicative data comprises transmitting the promotional content to the at least one other mobile device.
 14. The computer-implemented method of claim 1, further comprising receiving the tag as data captured automatically via at least one of a barcode and a radio frequency identification (RFID).
 15. The computer-implemented method of claim 1, further comprising receiving the tag as at least one of an optical recording and a photograph of a machine readable representation of data captured via the particular mobile device.
 16. The computer-implemented method of claim 1, further comprising receiving the tag as a description of a product.
 17. The computer-implemented method of claim 1, further comprising receiving the tag as a description of a section of a shopping establishment.
 18. The computer-implemented method of claim 1, further comprising receiving the tag as a description of a section of a shopping establishment.
 19. The computer-implemented method of claim 1, further comprising repeating the steps of receiving the location indicative data of the particular mobile device and receiving the tag corresponding to the location indicative data of the particular mobile device from the particular mobile device for a plurality of location indicative data, a plurality of particular mobile devices, and a plurality of tags respectively corresponding to the plurality of location indicative data and the plurality of particular mobile devices; and transmitting data indicative of at least one of the plurality of tags to the at least one other mobile device in response to the location indicative data of the at least one other mobile device corresponding to the location indicative data of at least one of the plurality of particular mobile devices.
 20. The computer-implemented method of claim 19, further comprising determining a confidence in an association of the plurality of tags with the plurality of location indicative data; and transmitting an indication of the confidence in association to the other mobile device.
 21. The computer-implemented method of claim 19, further comprising transmitting data indicative of predetermined ones of the plurality of tags to the at least one other mobile device in response to: the location indicative data of the at least one other mobile device corresponding to the location indicative data of at least one of the plurality of particular mobile devices; and the predetermined ones of the plurality of tags being of a predetermined number and a particular type.
 22. The computer-implemented method of claim 19, further comprising determining a quality value respectively of a plurality of users of the plurality of particular mobile devices; generating a point value of the plurality of received tags respectively based on the quality values of the plurality of users from which the plurality of tags were received; and transmitting the data indicative of at least one of the plurality of tags to the at least one other mobile device in response to the quality value of the at least one of the plurality of tags meeting a predetermined minimum value.
 23. Non-transitory computer-readable media tangibly embodying a program of instructions executable by a processor of a particular mobile device associated with a particular user to implement a method, the method comprising: receiving signals indicative of a location of the particular mobile device associated with the particular user; receiving a tag via the particular mobile device; generating signal fingerprints associated with the location indicative signals; associating with the tag a particular signal fingerprint corresponding to a time the tag was received; transmitting the associated tag and the signal fingerprints including the particular signal fingerprint to a remote system via a network; and receiving with the particular mobile device from the remote system data indicative of a tag provided by at least one other mobile device associated with at least one other user corresponding to a current signal fingerprint of the particular mobile device.
 24. The computer-readable media of claim 23, wherein the implemented method further comprises providing to a user via the mobile device the data indicative of the tag provided by the at least one other user.
 25. The computer-readable media of claim 23, wherein the implemented method further comprises: receiving a request initiated by at least one of a local application executed by the mobile device and a remote application executed external of the mobile device for the data indicative of the tag provided by the at least one other user; and transmitting a request to the remote system via a network for the data indicative of the tag provided by the at least one other user in response to the request initiated by the at least one of the local application and the remote application; and providing the data indicative of the tag provided by the at least one other user to the at least one of the local application and the remote application.
 26. The computer-readable media of claim 23, wherein the implemented method further comprises receiving the user input of the tag as at least one of a recording and a photograph of a machine readable representation of data captured via the mobile device.
 27. The computer-readable media of claim 23, wherein the implemented method further comprises providing an interface for input of a tag by a user and receiving user input of the tag.
 28. The computer readable media of claim 23, wherein the at least one other mobile device associated with at least one other user is the particular mobile device with the particular user at a future time after the tag was received.
 29. A computer-implemented method for aggregating and disseminating tag data comprising: receiving signals indicative of a location of a particular mobile device associated with a particular user; receiving a tag via the particular mobile device; generating signal fingerprints associated with the location indicative signals; associating with the tag a particular signal fingerprint corresponding to a time the tag was received; transmitting the associated tag and the signal fingerprints including the particular signal fingerprint to a remote system via a network; and receiving with the particular mobile device from the remote system data indicative of a tag provided by at least one other mobile device associated with at least one other user corresponding to a current signal fingerprint of the particular mobile device.
 30. A computer-implemented method for aggregating and disseminating tag data comprising: receiving a tag generated at a particular time from a particular mobile device; receiving data indicative of a particular location of the particular mobile device corresponding to the particular time; associating the tag with the location indicative data of the particular mobile device; receiving an authorization from a user associated with the particular mobile device to provide the tag as associated with the data indicative of a particular location to a remote system; and transmitting the tag as associated with the data indicative of a particular location to the remote system in response to the authorization from the user associated with the particular mobile device.
 31. The computer-implemented method of claim 30, further comprising transmitting an identifier of the particular mobile device to the remote system.
 32. A computer-implemented method for aggregating and disseminating tag data comprising: receiving a tag generated at a particular time from a particular mobile device; receiving data indicative of a particular location of the particular mobile device corresponding to the particular time; associating the tag with the location indicative data of the particular mobile device; receiving data indicative of a location of at least one other mobile device from a remote system; and transmitting data indicative of the tag to the remote system in response to the location indicative data of the at least one other mobile device corresponding to the location indicative data of the particular mobile device. 